ee83f27b96f2b3160981d41ae10dd29bcf7b42bd,org.eclipse.m2e.editor.xml/src/main/java/org/eclipse/m2e/editor/xml/internal/mojo/MojoParameterMetadataProvider.java,MojoParameterMetadataProvider,getItemParameters,#PluginDescriptor#String#Type#MojoParameter#IProgressMonitor#,380

Before Change



    Type itemType = getItemType(paramType);

    if(itemType != null) {
      MojoParameter inner = new MojoParameter(toSingular(name), getTypeDisplayName(paramType)).multiple();
      getItemParameters(desc, name, itemType, inner, monitor);
      container.setNestedParameters(Collections.singletonList(inner));
      return;
    }

After Change



    Type itemType = getItemType(paramType);

    if(itemType != null) {
      MojoParameter container = new MojoParameter(toSingular(name), getTypeDisplayName(paramType)).multiple();
      container.setNestedParameters(getItemParameters(desc, enclosingClass, name, itemType, monitor));
      return Collections.singletonList(container);
    }

    @SuppressWarnings("rawtypes")
    List<Class> parameterClasses = getCandidateClasses(desc, enclosingClass, paramClass);

    List<MojoParameter> parameters = new ArrayList<>();
    for(Class<?> clazz : parameterClasses) {

      String paramName;
      if(clazz.equals(paramClass)) {
        paramName = toSingular(name);
      } else {
        paramName = clazz.getSimpleName();
        paramName = Character.toLowerCase(paramName.charAt(0)) + paramName.substring(1);
      }

      MojoParameter container = new MojoParameter(paramName, getTypeDisplayName(clazz)).multiple();
      container.setNestedParameters(getParameters(desc, clazz, monitor));
      parameters.add(container);
    }

    return parameters;